package br.org.isvi.interpretador.portugol;

import br.org.isvi.interpretador.portugol.types.Kind;
import br.org.isvi.interpretador.portugol.types.Symbol;
import br.org.isvi.interpretador.portugol.types.Variable;

public class InterpreterResolver implements Resolver {

	private Resolver resolver;
	
	public static InterpreterResolver instance = new InterpreterResolver(); 
	
	public void setResolver(Resolver resolver) {
		this.resolver = resolver;
	}
	
	public void escreva(Symbol valor) {
			resolver.escreva(valor);
	}
	
	public void escrevaNL(Symbol valor) {
			resolver.escrevaNL(valor);
	}	
	
	public void addToStack(Symbol obj) {
			resolver.addToStack(obj);
	}
	
	public void declare(Variable obj) {
			resolver.declare(obj);
	}
	
	public void endOPeration(OperationResolver opr) {
			resolver.endOPeration(opr);
	}
	
	public void updateTarget(String target) {
			resolver.updateTarget(target);
	}

	public Symbol getOPerationResult() {
		return resolver.getOPerationResult();
	}

	public Variable getVariable(String name) {
		return resolver.getVariable(name);
	}

	public Symbol popStack() {
		return resolver.popStack();
	}
	
	public void performeHandlingError(String msg, int line, int col) {
		resolver.performeHandlingError(msg, line, col);
	}

	public int stackSize() {
		return resolver.stackSize();
	}

	public Symbol leia(Kind k) {
		return resolver.leia(k);
	}

	public void printStack() {
		resolver.printStack();
	}

	public Variable setVariable(Variable var, Symbol sym) {
		
		return resolver.setVariable(var, sym);
	}
	
	
}
